/*给定一个整数数组，判断是否存在重复元素。如果存在一值在数组中出现至少两次，函数返回true 。
* 如果数组中每个元素都不相同，则返回 false
*
* 输入: [1,2,3,1]
* 输出: true
* */

package newcoder.HashTable_3;

import java.util.HashMap;
import java.util.Map;

public class Leetcode217 {

    public static void main(String[] args) {

        Leetcode217 obj = new Leetcode217();
        int[] nums = {1, 2, 3, 4};
        System.out.println(obj.containsDuplicate(nums));
    }

    public boolean containsDuplicate(int[] nums){

        int len = nums.length;
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0;i < len;i++){
            map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
        }
        for (Map.Entry<Integer, Integer> entry : map.entrySet()){
            if (entry.getValue() != 1){
                return true;
            }
        }
        return false;
        //可考虑使用hashset，利用hashset添加重复值会返回false来进行判断
        //详见Set_2中的217
    }
}
